var map;
var $dataTable;
var polyline = new AMap.Polyline({});
// 创建一个 Icon
var sfzIcon = new AMap.Icon({
    // 图标尺寸
    size: new AMap.Size(25, 34),
    // 图标的取图地址
    image: './image/sfz.ico',
    // 图标所用图片大小
    imageSize: new AMap.Size(135, 40),
    // 图标取图偏移量
    imageOffset: new AMap.Pixel(-9, -3)
});
// 创建一个 Icon
var mjIcon = new AMap.Icon({
    // 图标尺寸
    size: new AMap.Size(25, 34),
    // 图标的取图地址
    image: './image/mj.ico',
    // 图标所用图片大小
    imageSize: new AMap.Size(135, 40),
    // 图标取图偏移量
    imageOffset: new AMap.Pixel(-9, -3)
});

/**
 * 添加位置标记到地图
 * 参考https://lbs.amap.com/api/javascript-api/guide/overlays/marker
 * @param logitude
 * @param atitud
 */
function addPositionToMap(logitude, latitud, flag) {
    var marker = new AMap.Marker({
        position: new AMap.LngLat(logitude, latitud),
        //   icon: flag == 1 ? "./image/mj.png" : "./image/收费站.png"
        icon: flag == 1 ? sfzIcon : mjIcon
        //offset: new AMap.Pixel(-10, -10),
        //icon: 'https://ss0.bdstatic.com/94oJfD_bAAcT8t7mm9GUKT-xh_/timg?image&quality=100&size=b4000_4000&sec=1596371037&di=2ba8ee925573829707044d4e8cee39c5&src=http://a0.att.hudong.com/56/12/01300000164151121576126282411.jpg', // 添加 Icon 图标 URL
        // title: name
    })
    map.add(marker);//添加到地图
}

/**
 * 根据坐标绘制折线
 * 参考https://lbs.amap.com/api/javascript-api/guide/overlays/vector-overlay
 */
function drawPolyline(positionArray) {
    map.remove(polyline);
    polyline = new AMap.Polyline({
        path: positionArray,          //设置线覆盖物路径
        strokeColor: "#3366FF", //线颜色
        strokeWeight: 5,        //线宽
        strokeStyle: "solid",   //线样式
    });
    map.add(polyline);
}


/**
 * 根据经纬度获取地理信息具体描述
 * @param lng
 * @param lat
 */
function getPositionByLonLats(lng, lat, item) {
    var lnglatXY = [];
    lnglatXY.push(lng, lat);
    AMap.service('AMap.Geocoder', function () {// 回调函数
        geocoder = new AMap.Geocoder({
            city: "010", //城市设为北京，默认：“全国”
            radius: 1000 //范围，默认：500
        });
        geocoder.getAddress(lnglatXY, function (status, result) {
            if (status === 'complete' && result.info === 'OK') {
                var address = result.regeocode.formattedAddress;
                item.location = address;
            } else {
                item.location = "unkonwn error";
            }
        });
    });
}

/**
 * 根据经纬度获取地理位置详细
 *   var lnglatXY = [
 {Q: 31.998462582366784, R: 118.95006070554257, lng: 118.950061, lat: 31.998463},
 {Q: 32.149740211046186, R: 118.47078214108944, lng: 118.470782, lat: 32.14974}
 ];
 * @param lnglatXY
 */
function getPositionByLonLatsBatch(lnglatXY) {
    var position = '';
    lnglatXY.map(function (item) {
        position += item.lng + ',' + item.lat + '|';
    })

    position += '&batch=true';
    AMap.service('AMap.Geocoder', function () {// 回调函数
        geocoder = new AMap.Geocoder({
            city: "010", //城市设为北京，默认：“全国”
            radius: 1000 //范围，默认：500
        });
        geocoder.getAddress(position, function (status, result) {
            if (status === 'complete' && result.info === 'OK') {
                for (var i = 0; i < result.regeocodes.length; i += 1) {
                    console.log(result.regeocodes[i].formattedAddress);
                }
            } else {
                return "";
            }
        });
    });
}

/**
 * 初始化代码
 */
$(function () {
    map = new AMap.Map('container', {
        zoom: 11,//级别
        center: [113.60, 24.82],//中心点坐标广东省 韶关市
        viewMode: '3D'//使用3D视图
    });
    //初始化下拉框
    getCarName();
    //初始化查询事件
    initialQueryEvent();
    //初始化表格
    initialTable();
    //绘制收费站或者门架信息
    getStationInfo();
})

/**
 * 按钮查询事件
 */
function initialQueryEvent() {
    $("#queryBtn").click(function () {
        let carName = $("#cars").val();
        getCarTrainInfo(carName);
    });
}

/**
 * 绘制表格
 */
function initialTable() {
    // 初始化表格
    $dataTable = initDataTable('tableShow');
    var mockData = [];
    // 填充表格数据
    var currentPage = $dataTable.page();
    $dataTable.rows().remove();
    $dataTable.rows.add(mockData).draw().page(currentPage).draw(false);
}

/**
 * @Desc:  {初始化表格配置}
 * @Params:  {表格容器ID}
 * @Date: 2020-08-04 14:39:28
 */
function initDataTable(tableId) {
    var options = {
        paging: true,
        processing: true,
        lengthChange: true,
        pageLength: 20,
        searching: false,
        info: true,
        ordering: false,
        stateSave: true,
        dom: '<"row"<"col-sm-6"f>>' + '<"row"<"col-sm-12"tr>>' + '<"row"<"col-sm-5"i><"col-sm-7"p>>',
        language: {
            "lengthMenu": "每页 _MENU_ 条,",
            "info": "共 _TOTAL_ 条记录",
            "infoEmpty": "无记录",
            "infoFiltered": "(从 _MAX_ 条记录中筛选)",
            "zeroRecords": "无数据",
            "loadingRecords": "加载中...",
            "processing": "处理中...",
            "search": "搜索:",
            "paginate": {
                "first": "首页",
                "last": "尾页",
                "next": "下一页",
                "previous": "上一页"
            }
        },
        columnDefs: [0, 1, 2, 3, 4].map((item, columnIndex) => {
            var def = {
                targets: columnIndex,
                width: undefined
            };

            if (columnIndex === 0) {
                def.width = '60px';
            }
            if (columnIndex === 1) {
                def.width = '120px';
            }
            return def;
        }),
        columns: [
            {
                render: (data, type, row, meta) => {
                    if (typeof meta.row === 'number') {
                        return `${meta.row + 1}`;
                    } else {
                        return `${meta.row[0] + 1}`;
                    }
                }
            },
            {
                data: 'longtitude'
            },
            {
                data: 'latitude'
            },
            {
                data: 'arriveTime'
            },
            {
                data: 'location'
            }
        ]
    }
    $('#' + tableId).DataTable(options);
    return $('#' + tableId).DataTable();
}